#include <iostream>

using namespace std;

/*
题目描述
    输入正整数x，求第x小的质数。
输入描述
    输入n+1行，
    第一行，一个正整数n(1<n<=20000);
    接下来n行，每行一个正整数x(1<=x<=20000)。
输出描述
    输出n行，每行一个数字，表示当前第x小的质数。
*/

int a[225000]={0};
int prime[20005];

int main(){
    
    int n,x;
    
    int cnt = 1;
    
    a[1]=1;
    // 在a数组中找出质数
    for(int i=2;i<=225000;i++){
        if(a[i]==0){ // 表示是质数
            for(int j=2*i;j<=225000;j+=i){ //  找出倍数
                a[j] = 1; // 将倍数去除，就只剩质数
            }
        }
    }
    
    // 打表
    for (int i = 1; i <= 225000; i++) {
        if(a[i]==0){ //找到所有质数
            prime[cnt] = i; // 将第一个质数存放到prime数组内的第1个下标位置
            ++cnt;// 下标位置计算
            if(cnt==20001){
                break;
            }
        }
    }
    cin >> n;
    for (int i = 1; i <= n; i++) {
       cin >> x;
       cout << prime[x] << endl;
    }
    return 0;
}